.\" $Id: bw_file_rd.8 1.2 00/10/16 17:13:35+02:00 staelin@hpli8.hpli.hpl.hp.com $
.TH BW_FILE_RD 8 "$Date: 00/10/16 17:13:35+02:00 $" "(c)1994 Larry McVoy" "LMBENCH"
.SH NAME
bw_file_rd \- time the reading and summing of a file
.SH SYNOPSIS
.B bw_file_rd
[
.I "-P <parallelism>"
]
[
.I "-W <warmups>"
]
[
.I "-N <repetitions>"
]
.I size
.I file
.SH DESCRIPTION
.B bw_file_rd
times the read of the specified file in 64KB blocks. Each block is summed
up as a seried of 4 byte integers in an unrolled loop.
Results are reported in megabytes read per second.
.LP
The data is not accessed in the user program; the benchmark relies on
the operating systems read interface to have actually moved the data.
Systems that implement page flipping may fool this benchmark.
.LP
The benchmark is intended to be used on a file 
that is in memory, i.e., the benchmark is a reread benchmark.  Other
file benchmarking can be done with 
.BR lmdd (8).
.LP
The size
specification may end with ``k'' or ``m'' to mean
kilobytes (* 1024) or megabytes (* 1024 * 1024).
.SH OUTPUT
Output format is \f(CB"%0.2f %.2f\\n", megabytes, megabytes_per_second\fP, i.e.,
.sp
.ft CB
8.00 25.33
.ft
.SH MEMORY UTILIZATION
This benchmark can move up to three times the requested memory.  Most Unix
systems implement the read system call as a bcopy from kernel space
to user space.  Bcopy will use 2-3 times as much memory bandwidth:
there is one read from the source and a write to the destionation.  The
write usually results in a cache line read and then a write back of
the cache line at some later point.  Memory utilization might be reduced
by 1/3 if the processor architecture implemented ``load cache line''
and ``store cache line'' instructions (as well as ``getcachelinesize'').
.SH ACKNOWLEDGEMENT
Funding for the development of
this tool was provided by Sun Microsystems Computer Corporation.
.SH "SEE ALSO"
lmbench(8).
.SH "AUTHOR"
Carl Staelin and Larry McVoy
.PP
Comments, suggestions, and bug reports are always welcome.
